iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Modern Web

Django新手指南系列 第 18

孔子:工欲善其事(?) 刪除資料表中的資料 江狗(Django) 鐵人Day18

  • 分享至 

  • xImage
  •  


(老師需要堆高機?)

再來輪到刪除了呢!
刪除在資料庫管理上也扮演很重要的角色呢!

刪除資料表中的一筆資料

urls.py中新增remove_classlist路徑:

#<urls.py>

path('remove_classlist/',views.remove_classlist)


打開VScode找到Viws.py
修改資料(revise_classlist)下方再添加一項刪除資料(remove_classlist):

#<Views.py>

@csrf_exempt
def remove_classlist(request):
    outputinfo={}
    if request.method == "DELETE":
        try:
            data = json.loads(request.body)
            remove = Classlist.objects.get(Name=data['Name'])
            remove.delete()
            outputinfo["資料狀態:"] = "刪除成功"
        except:
            outputinfo["錯誤:"] = "沒有這個名字的學生"
    else:
        outputinfo['資料類型錯誤'] = "請使用DELETE輸入"
    return JsonResponse(outputinfo, safe=False, json_dumps_params={'ensure_ascii': False})

刪除的程式碼比較短一點,我們一樣解釋一下:

1. CSRF

@csrf_exempt

2. 項目名稱、JSON輸出設定、判斷輸入類型

def revise_classlist(request):
    
    if request.method == "DELETE":
    else:
        outputinfo['資料類型錯誤'] = "請使用DELETE輸入"

3. 嘗試執行與意外處理:

try:
    (...)
except:
    #輸出錯誤狀態
    outputinfo["錯誤:"] = "沒有這個名字的學生"

4. 獲取班級資料表(classlist)的一筆資料

#<資料表變數>=<資料表名稱>.objects.get(資料表欄位名稱 = data['<輸入參數名稱>']
remove = Classlist.objects.get(Name=data['Name'])

5. 資料寫入與存入資料

#<變數> = <json格式轉python格式>(<獲取輸入資料的位置>)
data = json.loads(request.body)
#<資料表變數>.<刪除>()
remove.delete()

6. 輸出修改後的格式

outputinfo["資料狀態:"] = "刪除成功"

7. JSON格式輸出

return JsonResponse(outputinfo, safe=False, json_dumps_params={'ensure_ascii': False})

結果

這樣就完成了,繼續用Postman測看看:

我們假設ID為1的王曉明轉學了,我們要把他從班級列表中移除:

再來到後台看看資料狀況:

ID為1的王曉明就從資料表中移除(被消失)了~
新增、修改與刪除這三項是管理資料庫必要會的程式能力,管理資料庫不只有這三種而已,還有許多功能與神奇的操作,感興趣的讀者們可以去涉略一番,在未來處理有關資料庫的需求時會很有幫助哦~
先到這裡,大家掰掰~

圖片來源:堆高機


上一篇
子曰:有朋自遠方來(?) 修改資料表中的資料 江狗(Django) 鐵人Day17
下一篇
PLUSH SPEED(?) 路由映射 江狗(Django) 鐵人Day19
系列文
Django新手指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言